#ifndef TERRAIN_H
#define TERRAIN_H

#include <algorithm/shared/utils/Para.h>
#include <algorithm/shared/utils/Vec3.h>
#include <utils/ParaUtils.h>

#include <utility>
#include <vector>

#include <boost/describe.hpp>

namespace solar
{

    class Terrain : public Para
    {
        public:
            ~Terrain() override = default;
            Terrain(std::string dem_file = "null") : dem_file_(std::move(dem_file)) {}

#include <utils/class_name.inc>

        private:
            void readFile(); // 从file中导入heights

            std::string dem_file_;
            // 从file中导入的，每个格子的高度-----不可通过UI更改
            std::vector<std::vector<Vec3>> heights_;
            BOOST_DESCRIBE_CLASS(Terrain, (Para), (), (), (dem_file_))
    };
} // namespace solar
#define CURRENT_CLASS_NAME Terrain
#include <utils/class_describe_header.inc>
SOLAR_DESCRIBE_CLASS(Terrain, (Para), (), (), (dem_file_))
#endif
